package com.insight.config;

import com.insight.common.constant.CommonConstant;
import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;

/**
 * 跨域配置加载条件，用于判断是否需要加载跨域相关配置。
 */
public class CorsFilterCondition implements Condition {

    /**
     * 判断是否需要加载跨域配置
     * @param context 条件上下文
     * @param metadata 注解元数据
     * @return true-需要加载，false-不需要
     */
    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
        Object object = context.getEnvironment().getProperty(CommonConstant.CLOUD_SERVER_KEY);
        //如果没有服务注册发现的配置 说明是单体应用 则加载跨域配置 返回true
        return object == null;
    }
}
